package cn.iocoder.yudao.module.station.controller.admin.fillrecord.vo;

import lombok.*;

import java.time.LocalDate;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 充装记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class FillRecordPageReqVO extends PageParam {

    @Schema(description = "气站ID")
    private Long stationIdcho;

    @Schema(description = "充装站点编码")
    private String stationCode;

    @Schema(description = "唯一编码")
    private String barcode;

    @Schema(description = "钢瓶编码")
    private String cylinderCode;

    @Schema(description = "载体编码")
    private String chipCode;

    @Schema(description = "枪号")
    private Integer gunSn;

    @Schema(description = "电子秤号")
    private Integer scaleSn;

    @Schema(description = "充装日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDate[] fillDate;

    @Schema(description = "充装时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] fillTime;

    @Schema(description = "充装持续时间（秒）")
    private Integer fillDuration;

    @Schema(description = "钢瓶类型编码")
    private Long cylinderTypeCode;

    @Schema(description = "钢瓶类型名称", example = "王五")
    private String cylinderTypeName;

    @Schema(description = "钢瓶规格")
    private String gasCylinderSpeci;

    @Schema(description = "充装介质编码")
    private Long fillMediumCode;

    @Schema(description = "充装介质名称", example = "赵六")
    private String fillMediumName;

    @Schema(description = "钢瓶类型编码")
    private Long cylinderModelCode;

    @Schema(description = "钢瓶类型名称", example = "王五")
    private String cylinderModelName;

    @Schema(description = "钢瓶制造日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] makeTime;

    @Schema(description = "钢瓶制造厂家编码")
    private Long makeFactoryCode;

    @Schema(description = "钢瓶制造厂家名称", example = "芋艿")
    private String makeFactoryName;

    @Schema(description = "最近一次检测时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recentCheckTime;

    @Schema(description = "下次检验时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] nextCheckTime;

    @Schema(description = "初始重量")
    private Double initialWeight;

    @Schema(description = "充装重量")
    private Double fillWeight;

    @Schema(description = "总重")
    private Double fullWeight;

    @Schema(description = "复秤设备号")
    private Integer reweightDeviceCode;

    @Schema(description = "复秤重量")
    private Double reweightWeight;

    @Schema(description = "数据来源")
    private Integer dataSource;

    @Schema(description = "充装工编号")
    private String operateUserCode;

    @Schema(description = "充装工姓名", example = "赵六")
    private String operateUserName;

    @Schema(description = "充装环境温度")
    private Double envirTempera;

    @Schema(description = "充装检查记录ID", example = "29666")
    private Long fillCheckRecordId;

    @Schema(description = "充装前检查状态", example = "1")
    private Integer beforeCheckStatus;

    @Schema(description = "充装前检查人")
    private String beforeCheckUser;

    @Schema(description = "充装前检查时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] beforeCheckTime;

    @Schema(description = "充装后检查状态", example = "2")
    private Integer afterCheckStatus;

    @Schema(description = "充装后检查人")
    private String afterCheckUser;

    @Schema(description = "充装后检查时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] afterCheckTime;

    @Schema(description = "充装状态", example = "1")
    private Integer fillStatus;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
